// /**
//  * Grunt入口文件
//  * 
//  * 
//  */

//  module.exports = grunt =>{
//      //普通任务
//      grunt.registerTask('foo',() =>{
//          console.log(121212);
         
//      })
//      // 任务添加描述
//      grunt.registerTask('bar','miaoshu',()=>{
//         console.log(1212121212121212121212);
        
//      })
//      //默认任务
//     //  grunt.registerTask('default',() =>{
//     //      console.log('121asa2');
         
//     //  })

//     //默认顺序执行任务
//     grunt.registerTask('default',['foo','bar'])

//     //异步任务
//     grunt.registerTask('async-task',function(){
//         const done = this.async()
//         setTimeout(()=>{
//             console.log('ansycasdasdas');
//             done()
            
//         },1000)
//     })
//  }



const sass = require('sass')
const loadGruntTasks = require('load-grunt-tasks')
const { registerTask } = require('grunt')
module.exports = grunt =>{
    grunt.initConfig({
        sass:{
            //使用哪个模块转换scss
            options:{
                sourceMap:true,
                implementation:sass
            },
            main:{
                //键值对形式  键为输出的css路径  值为输入的sass路径
                files:{
                    'dist/css/main.css':'src/assets/styles/main.scss'
                }
            }
        },
        babel:{
            options:{
                sourceMap:true,
                //转换es全部新特性
                presets:['@babel/preset-env']
            },
            main:{
                files:{
                    'dist/js/main.js':'src/assets/scripts/main.js'
                }
            }
        },
        htmlmin:{
            main:{
                options: {
                    removeComments: true, //移除注释
                    removeCommentsFromCDATA: true,//移除来自字符数据的注释
                    collapseWhitespace: true,//无用空格
                },
                files:{
                    'dist/index.html':'src/index.html'
                }
            }
        },
        imagemin:{
            main:{
                options: {
                    optimizationLevel: 3, //定义 PNG 图片优化水平
                    pngquant: true
                },
                files:{
                    'dist/images/logo.png':'src/assets/images/logo.png'
                }
            }
        },
        watch:{
            js:{
                //源文件
                files:['src/assets/scripts/*.js'],
                // 任务
                tasks:['babel']
            },
            css:{
                files:['src/assets/styles/*.scss'],
                tasks:['sass']
            }
        }
    })
    //加载grunt所有任务
    loadGruntTasks(grunt)

    //先运行一次任务再执行watch
    grunt.registerTask('default',['sass','babel','htmlmin','watch'])
}